package homework.day01;

import java.util.Random;
import java.util.Scanner;

/**
 * 提高题
 * 生成一个4位验证码(数字和字母的组合)
 * 然后输出到控制台并提示用户输入该验证码，只要用户输入正确(无论大小写都算)，
 * 就输出:验证码正确，否则输出:验证码错误
 * 
 * 
 * 验证码如何生成?
 * 思路导向填空:
 * 1:要先确定生成的内容范围(列出所有可以出现的字符):
 * 	 
 * 2:先思考如何生成其中的一个字符呢？
 *   2.1:确定怎么保存这些可以出现的字符:
 *   
 *   2.2:怎么能随机抽选一个
 *   
 * 3:既然可以生成一个，如何做到生成4个或更多个?  
 *  
 * 4:怎么在生成这些字符的过程中将他们组成一个字符串?
 * 
 * 5:获取到用户输入的字符串后怎么与之比较,要利用到哪些字符串操作?
 * 
 * 
 * @author Xiloer
 *
 */
public class Test06 {
	public static void main(String[] args) {
		//【创建一个扫描仪】
		Scanner scanner = new Scanner(System.in);
		//【创建一个Random对象,用于随机抽取字符】
		Random random = new Random();
		//【生成一个字符串，保存验证码所有可以出现的字符】
		String line = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		//【创建一个空字符串变量code，用于保存验证码】
		String code = "";
		//【循环4次，生成4个字符】
		for(int i=0;i<4;i++) {
			//【随机获取字符串line中一个字符的下标索引】
			int index = random.nextInt(line.length());
			//【获取该下标对应的字符】
			char c = line.charAt(index);
			//【每次循环，将字符拼接在code后面】
			code+=c;
		}
		//【输出验证码】
		System.out.println("验证码:"+code);
		//【提示用户输入验证码】
		System.out.println("请输入验证码:");
		//【接受用户输入的验证码】
		String input = scanner.nextLine();
		//【判断用户输入的验证码是否正确】
		if(code.equalsIgnoreCase(input)){
			//【输入正确，提示验证成功】
			System.out.println("验证成功!");
		}else{
			//【输入错误，提示验证失败】
			System.out.println("验证失败!");
		}

	}
}





